/*
 * DiferenciaModifiedFile.h
 *
 * Esta entidad hace referencia a una diferencia encontrada en el repositorio,
 * correspondiente a un archivo modificado en el mismo
 * */

#ifndef DIFERENCIAMODIFIEDFILE_H_
#define DIFERENCIAMODIFIEDFILE_H_

#include "Diferencia.h"
#include "FileDateModification.h"

class DiferenciaModifiedFile : public Diferencia {
	FileDateModification fDate;
	std::string oldHash;
	public:
		DiferenciaModifiedFile();
		DiferenciaModifiedFile(const char* nombreArch,
				const FileDateModification& fDateMod,
				const std::string& dirPath,
				const std::string& oldHash) {
			nombreArchivo = nombreArch;
			fDate = fDateMod;
			this->dirPath = dirPath;
			this->oldHash = oldHash;
		};

		virtual ~DiferenciaModifiedFile() {};

		// UPLOAD <nombreArchivo> <fechaMod> <oldHash> (oldHash para TRYUPDATE)
		virtual std::string getComandoDiferencia() {
			std::string mensaje = UPDATEFILE;
			mensaje += " ";
			mensaje += this->nombreArchivo;
			mensaje += " ";
			mensaje += this->fDate.getFileDateMod();
			mensaje += " ";
			mensaje += this->oldHash;
			return (mensaje);
		};
};

#endif
